var net = {}

const API_URL = "https://llwant.qianz.com";
//const API_URL = "http://127.0.0.1:443";

var mToken = "xxx"
var isConnected = false
//////////////////////////////////////////////
// 2、网络访问
//////////////////////////////////////////////
net.httpRequest = function (method, url, body, callback) {
    if (!callback) {
        console.error("--------httpRequest callback null");
        return;
    }

    var xhr = cc.loader.getXMLHttpRequest();

    xhr.onreadystatechange = function () {
        if (xhr.readyState == 1) {
            return
        }

        if (xhr.readyState == 4 && xhr.status == 200) {
            var response = xhr.responseText;
            callback(true, response)
        } else {
            callback(false, null)
        }
    };

    xhr.open(method, url, true);
    xhr.send(body);
}

//////////////////////////////////////////////
// 3、登录服务器
//////////////////////////////////////////////
net.loginServer = function (callback) {
    if (!callback) {
        console.error("--------loginServer callback null");
        return;
    }

    // var partner_id = net.getWXParam("partner_id");
    // var access_token = net.getWXParam("access_token");
    // var openid = net.getWXParam("openid");
    // var unionid = net.getWXParam("unionid");
    var code = localStorage.getItem("code");
    // var loginUrl = API_URL + "/login?code=" + code;
    // var bodyJson = {
    // "partner_id" : partner_id,
    // "access_token" : access_token,
    // "openid" : openid,
    // "unionid" : unionid
    //"code" : code
    //};

    //var bodyStr = JSON.stringify(bodyJson)

    var nickName = localStorage.getItem("nickName");
    var avatarUrl = localStorage.getItem("avatarUrl");
    var gender = localStorage.getItem("gender");
    var loginUrl = API_URL + "/login?&code=" + code + "&nickName=" + nickName + "&avatarURL=" + avatarUrl + "&gender=" + gender
    if (code != null) {
        wx.request({
            url: loginUrl,
            success: function (res) {
                var gmsg = res.data;//JSON.parse(res.data)
                var token = gmsg.tk;
                mToken = encodeURIComponent(token)
                console.log('gmsg tk :', gmsg.tk);
                if (gmsg.errCode == 0) {
                    isConnected = true;
                    callback(true, gmsg)
                } else {
                    callback(false, gmsg)
                }
            }
        })
    } else {
        callback(false, null)
    }

}

//////////////////////////////////////////////
// 4、上传分数
// distance  : 距离
// hitCount  : 碰撞数量
// score     : 分数
//////////////////////////////////////////////
net.uploadScore = function (distance, hitCount, score, callback) {
    if (!callback) {
        console.error("--------uploadScore callback null");
        return;
    }
    console.error("-----4、上传分数---------isConnected:" + isConnected)
    if (!isConnected) {
        callback(false, null)
        return;
    }
    // var bodyStr = JSON.stringify(bodyJson)
    var rankListUrl = API_URL + "/reportscore?sign=&tk=" + mToken + "&distance=" + distance + "&hitCount=" + hitCount + "&score=" + score
    wx.request({
        url: rankListUrl,
        // data: {
        //     "distance": distance,
        //     "hitCount": hitCount,
        //     "score": score
        // },
        method: "POST",
        header: {
            "content-type": "application/x-www-form-urlencoded"
        },
        success: function (res) {
            var gmsg = res.data;//JSON.parse(res.data)
            if (gmsg.errCode == 0) {
                callback(true, gmsg)
            } else {
                callback(false, gmsg)
            }
        }
    })
}

//////////////////////////////////////////////
// 5、拉取排行榜
// tType ： 请求排名类型 0 全部 1 小排名
// callback : 回调函数
//////////////////////////////////////////////
net.getRankList = function (tType, callback) {
    if (!callback) {
        console.error("--------getRankList callback null");
        return;
    }
    console.error("-------5、拉取排行榜-------isConnected:" + isConnected)
    if (!isConnected) {
        callback(false, null)
        return;
    }
    var rankListUrl = API_URL + "/getranking?sign=&tk=" + mToken + "&type=" + tType;
    wx.request({
        url: rankListUrl,
        success: function (res) {
            var gmsg = res.data;//JSON.parse(res.data)
            if (gmsg.errCode == 0) {
                callback(true, gmsg)
            } else {
                callback(false, gmsg)
            }
        }
    })
    // net.httpRequest("POST", rankListUrl, bodyStr,
    //     function (isSuc, response) {
    //         if (isSuc) {
    //             var jsonResponse = JSON.parse(response)

    //             if (parseInt(jsonResponse.result) == 0) {
    //                 callback(true, jsonResponse)
    //             } else {
    //                 callback(false, null)
    //             }
    //         } else {
    //             callback(false, null)
    //         }
    //     }
    // );
}

module.exports = net